package cn.edu.sdyu.ie.crs.service;

import cn.edu.sdyu.ie.crs.common.response.LabelValue;
import cn.edu.sdyu.ie.crs.common.response.NamedValue;
import cn.edu.sdyu.ie.crs.domain.Classroom;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface ClassroomService {

    /**
     * 查询所有教室信息
     * @return
     */
    List<Classroom> findAll();

    /**
     *
     * @param page 页码
     * @param pageSize 分页大小
     * @return
     */
    Page<Classroom> findByPage(Integer page, Integer pageSize);

    /**
     * 根据教室ID查询教室信息
     * @param id 教室Id
     * @return
     */
    Classroom findClassroomById(Integer id);

    /**
     * 保存教室信息
     * @param classroom 教室对象
     */
    void saveClassroom(Classroom classroom);

    /**
     * 根据教室ID删除教室信息
     * @param id
     */
    void deleteClassroomById(Integer id);

    /**
     * 统计教室数量
     * @return
     */
    Long countClassroom();

    /**
     * 统计某使用状态教室数量
     */
    Long countClassroomByUsageStatus(Integer usageStatus);

    /**
     * 按使用模式统计教室数量
     */
    List<NamedValue> countGroupByUsageMode();

    /**
     * 根据教学楼ID查询教室
     * @param classroomBuildingId
     * @return
     */
    public List<Classroom> findClassroomByClassroomBuildingId(Integer classroomBuildingId);
}
